A motion-capture system captures movement of a user, a portion of the user's body (often one or more of the user's hands) and/or object in three-dimensional (“3D”) space using a computing device connected to one or more cameras. Once movement is captured, the computing device can interpret the movement as a user-input command and update a computer display accordingly. For example, the computer display can illustrate a virtual representation of the user's hands and update that representation as the user moves his hands. In another example, the computer display can illustrate a virtual object that is manipulated (e.g., rotated or resized) as the user's hands move.
Processing a sequence of captured images quickly enough to detect and characterize objects therein (e.g., in terms of their contours), and track their motions through the image sequence in real time, requires substantial computational resources. These resources can vary from system to system and even over time; whereas motion-capture hardware can be standardized into, for example, a sensor package capable of connecting to a wide variety of devices, those devices—computers, tablets, smart phones, etc.—can differ markedly in terms of their ability to run the software that operates the motion-capture hardware and consumes its output. A mismatch between the demands of a motion-capture system and the resources available to support it can result in uneven or unacceptable performance.
A need therefore exists for systems and methods for determining the computational resources available for motion capture and tailoring operation of the system hardware and/or software accordingly.